package com.mm.cloud.common.core.result;

/**
 * 结果工具
 *
 * @author mr
 * @since 2021-09-15
 */
public class ResultUtil {

    /**
     * 返回成功
     */
    public static <T> Result<T> success() {
        return result(ResultEnum.SUCCESS);
    }

    /**
     * 返回成功 + 数据
     */
    public static <T> Result<T> success(T t) {
        return new Result<>(ResultEnum.SUCCESS.getCode(), ResultEnum.SUCCESS.getMessage(), t);
    }

    /**
     * 返回成功 + 数据 + 总条数
     */
    public static <T> Result<T> success(T t, Long total) {
        return new Result<>(ResultEnum.SUCCESS.getCode(), ResultEnum.SUCCESS.getMessage(), t, total);
    }

    /**
     * 返回失败
     */
    public static <T> Result<T> fail() {
        return result(ResultEnum.ERROR);
    }

    /**
     * 返回失败 + 自定义消息
     */
    public static <T> Result<T> fail(String message) {
        return new Result<>(ResultEnum.ERROR.getCode(), message);
    }

    /**
     * 无数据
     */
    public static <T> Result<T> result(ResultEnum resultEnum) {
        return new Result<>(resultEnum.getCode(), resultEnum.getMessage());
    }

    /**
     * 无数据
     */
    public static <T> Result<T> result(Integer code, String message) {
        return new Result<>(code, message);
    }
}
